#ifndef GAMEENGINE_AI_PATH_FINDING_HEURISTIC_DEFAULT_H
#define GAMEENGINE_AI_PATH_FINDING_HEURISTIC_DEFAULT_H

#include <GameEngine/AI/ai_settings.h>


#ifdef GAMEENGINE_NAMESPACES
namespace GameEngine {
#endif


//! Default heuristic, typically meant for the A-star algorithm
/*!
 *  This is the slowest possible heuristic for the A-star algorithm (this heuristic always
 *  returns 0, i.e., does not favor any of the nodes through the A-star search). This default
 *  heuristic should therefore be avoided if possible, and used only if:<br>
 *  1. You can't get a clue of what the correct heuristic is for your purposes, or<br>
 *  2. The cost of computing the heuristic exceeds the cost of exploring too many nodes.
 *
 @sa The AStar class for path-finding in a graph.
 */
template <class Graph>
class HeuristicDefault {

public:
	HeuristicDefault();
	~HeuristicDefault();

	typename Graph::Cost cost(const typename Graph::Node& start, const typename Graph::Node& end) const;
};


#ifdef GAMEENGINE_NAMESPACES
} // namespace GameEngine
#endif

#include <GameEngine/AI/PathFinding/heuristic_default.hpp>

#endif
